Exemplary embodiments relate to flash memory devices, and more specifically, to performing built in self test of an array of flash memory cells.
Flash memory is a nonvolatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM (electrically erasable programmable read only memory) and must be erased in fairly large blocks before these can be rewritten with new data. The high density NAND (not and) type must also be programmed and read in (smaller) blocks, or pages, while the NOR (not or) type allows a single machine word (byte) to be written and/or read independently.
The NAND type of flash memory is primarily used in memory cards, USB (universal serial bus) flash drives, solid state drives (SSD), and similar products, for general storage and transfer of data. The NOR type, which allows true random access and therefore direct code execution, is used as a replacement for the older EPROM and as an alternative to certain kinds of read only memory (ROM) applications.
Flash memory is a memory chip that maintains stored information without requiring a power source. It is often used in portable electronics, like MP3 players, and in removable storage devices. Flash memory differs from regular EEPROM in that EEPROM erases its content one byte at a time. This makes it slow to update. Flash memory can erase its data in entire blocks, making it a desired technology for applications that require frequent updating of large amounts of data as in the case of a memory stick.
Inside the flash memory (chip), information is stored in cells. A floating gate (FG) protects the data written in each cell. Tunneling electrons pass through a low conductivity material to change the electronic charge of the gate in “a flash,” clearing the cell of its contents so that it can be rewritten. This is how flash memory gets its name.
Flash memory stores information in an array of memory cells made from floating gate transistors. In traditional single-level cell (SLC) devices, each cell stores only one bit of information. Some newer flash memory, known as multi-level cell (MLC) devices, can store more than one bit per cell by choosing between multiple levels of electrical charge to apply to the floating gates of its cells.
The floating gate of a floating gate transistor may be conductive (typically polysilicon in most kinds of flash memory) or non-conductive. In flash memory, each memory cell resembles a standard MOSFET (metal oxide semiconductor field effect transistor), except the transistor has two gates instead of one. On top is the control gate (CG), as in other MOS transistors, but below this there is a floating gate insulated all around by an oxide layer. The floating gate is interposed between the control gate and the MOSFET channel. Because the floating gate is electrically isolated by its insulating layer, any electrons placed on it are trapped there, and under normal conditions, will not discharge for many years. When the floating gate holds a charge, it screens (partially cancels) the electric field from the control gate, which modifies the threshold voltage (VT) of the cell. During read-out, a voltage intermediate between the possible threshold voltages is applied to the control gate, and the MOSFET channel will become conducting or remain insulating, depending on the threshold voltage of the cell, which is in turn controlled by charge on the floating gate. The current flow through the MOSFET channel is sensed and forms a binary code, reproducing the stored data. In a multilevel cell device, which stores more than one bit per cell, the amount of current flow is sensed (rather than simply its presence or absence), in order to determine more precisely the level of charge on the floating gate.